{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c86670bb-f8f4-4a94-aa93-3595e0653fec",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "# 数据加载 模型训练与预测\n",
    "from sklearn import datasets\n",
    "iris = datasets.load_iris()\n",
    "\n",
    "# X 输入数据赋值；Y输出数据赋值\n",
    "x = iris.data\n",
    "y = iris.target"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "cf71bab6-cb3b-4a96-8138-7be719eaab58",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[5.1 3.5 1.4 0.2]\n",
      " [4.9 3.  1.4 0.2]\n",
      " [4.7 3.2 1.3 0.2]\n",
      " [4.6 3.1 1.5 0.2]\n",
      " [5.  3.6 1.4 0.2]\n",
      " [5.4 3.9 1.7 0.4]\n",
      " [4.6 3.4 1.4 0.3]\n",
      " [5.  3.4 1.5 0.2]\n",
      " [4.4 2.9 1.4 0.2]\n",
      " [4.9 3.1 1.5 0.1]\n",
      " [5.4 3.7 1.5 0.2]\n",
      " [4.8 3.4 1.6 0.2]\n",
      " [4.8 3.  1.4 0.1]\n",
      " [4.3 3.  1.1 0.1]\n",
      " [5.8 4.  1.2 0.2]\n",
      " [5.7 4.4 1.5 0.4]\n",
      " [5.4 3.9 1.3 0.4]\n",
      " [5.1 3.5 1.4 0.3]\n",
      " [5.7 3.8 1.7 0.3]\n",
      " [5.1 3.8 1.5 0.3]\n",
      " [5.4 3.4 1.7 0.2]\n",
      " [5.1 3.7 1.5 0.4]\n",
      " [4.6 3.6 1.  0.2]\n",
      " [5.1 3.3 1.7 0.5]\n",
      " [4.8 3.4 1.9 0.2]\n",
      " [5.  3.  1.6 0.2]\n",
      " [5.  3.4 1.6 0.4]\n",
      " [5.2 3.5 1.5 0.2]\n",
      " [5.2 3.4 1.4 0.2]\n",
      " [4.7 3.2 1.6 0.2]\n",
      " [4.8 3.1 1.6 0.2]\n",
      " [5.4 3.4 1.5 0.4]\n",
      " [5.2 4.1 1.5 0.1]\n",
      " [5.5 4.2 1.4 0.2]\n",
      " [4.9 3.1 1.5 0.2]\n",
      " [5.  3.2 1.2 0.2]\n",
      " [5.5 3.5 1.3 0.2]\n",
      " [4.9 3.6 1.4 0.1]\n",
      " [4.4 3.  1.3 0.2]\n",
      " [5.1 3.4 1.5 0.2]\n",
      " [5.  3.5 1.3 0.3]\n",
      " [4.5 2.3 1.3 0.3]\n",
      " [4.4 3.2 1.3 0.2]\n",
      " [5.  3.5 1.6 0.6]\n",
      " [5.1 3.8 1.9 0.4]\n",
      " [4.8 3.  1.4 0.3]\n",
      " [5.1 3.8 1.6 0.2]\n",
      " [4.6 3.2 1.4 0.2]\n",
      " [5.3 3.7 1.5 0.2]\n",
      " [5.  3.3 1.4 0.2]\n",
      " [7.  3.2 4.7 1.4]\n",
      " [6.4 3.2 4.5 1.5]\n",
      " [6.9 3.1 4.9 1.5]\n",
      " [5.5 2.3 4.  1.3]\n",
      " [6.5 2.8 4.6 1.5]\n",
      " [5.7 2.8 4.5 1.3]\n",
      " [6.3 3.3 4.7 1.6]\n",
      " [4.9 2.4 3.3 1. ]\n",
      " [6.6 2.9 4.6 1.3]\n",
      " [5.2 2.7 3.9 1.4]\n",
      " [5.  2.  3.5 1. ]\n",
      " [5.9 3.  4.2 1.5]\n",
      " [6.  2.2 4.  1. ]\n",
      " [6.1 2.9 4.7 1.4]\n",
      " [5.6 2.9 3.6 1.3]\n",
      " [6.7 3.1 4.4 1.4]\n",
      " [5.6 3.  4.5 1.5]\n",
      " [5.8 2.7 4.1 1. ]\n",
      " [6.2 2.2 4.5 1.5]\n",
      " [5.6 2.5 3.9 1.1]\n",
      " [5.9 3.2 4.8 1.8]\n",
      " [6.1 2.8 4.  1.3]\n",
      " [6.3 2.5 4.9 1.5]\n",
      " [6.1 2.8 4.7 1.2]\n",
      " [6.4 2.9 4.3 1.3]\n",
      " [6.6 3.  4.4 1.4]\n",
      " [6.8 2.8 4.8 1.4]\n",
      " [6.7 3.  5.  1.7]\n",
      " [6.  2.9 4.5 1.5]\n",
      " [5.7 2.6 3.5 1. ]\n",
      " [5.5 2.4 3.8 1.1]\n",
      " [5.5 2.4 3.7 1. ]\n",
      " [5.8 2.7 3.9 1.2]\n",
      " [6.  2.7 5.1 1.6]\n",
      " [5.4 3.  4.5 1.5]\n",
      " [6.  3.4 4.5 1.6]\n",
      " [6.7 3.1 4.7 1.5]\n",
      " [6.3 2.3 4.4 1.3]\n",
      " [5.6 3.  4.1 1.3]\n",
      " [5.5 2.5 4.  1.3]\n",
      " [5.5 2.6 4.4 1.2]\n",
      " [6.1 3.  4.6 1.4]\n",
      " [5.8 2.6 4.  1.2]\n",
      " [5.  2.3 3.3 1. ]\n",
      " [5.6 2.7 4.2 1.3]\n",
      " [5.7 3.  4.2 1.2]\n",
      " [5.7 2.9 4.2 1.3]\n",
      " [6.2 2.9 4.3 1.3]\n",
      " [5.1 2.5 3.  1.1]\n",
      " [5.7 2.8 4.1 1.3]\n",
      " [6.3 3.3 6.  2.5]\n",
      " [5.8 2.7 5.1 1.9]\n",
      " [7.1 3.  5.9 2.1]\n",
      " [6.3 2.9 5.6 1.8]\n",
      " [6.5 3.  5.8 2.2]\n",
      " [7.6 3.  6.6 2.1]\n",
      " [4.9 2.5 4.5 1.7]\n",
      " [7.3 2.9 6.3 1.8]\n",
      " [6.7 2.5 5.8 1.8]\n",
      " [7.2 3.6 6.1 2.5]\n",
      " [6.5 3.2 5.1 2. ]\n",
      " [6.4 2.7 5.3 1.9]\n",
      " [6.8 3.  5.5 2.1]\n",
      " [5.7 2.5 5.  2. ]\n",
      " [5.8 2.8 5.1 2.4]\n",
      " [6.4 3.2 5.3 2.3]\n",
      " [6.5 3.  5.5 1.8]\n",
      " [7.7 3.8 6.7 2.2]\n",
      " [7.7 2.6 6.9 2.3]\n",
      " [6.  2.2 5.  1.5]\n",
      " [6.9 3.2 5.7 2.3]\n",
      " [5.6 2.8 4.9 2. ]\n",
      " [7.7 2.8 6.7 2. ]\n",
      " [6.3 2.7 4.9 1.8]\n",
      " [6.7 3.3 5.7 2.1]\n",
      " [7.2 3.2 6.  1.8]\n",
      " [6.2 2.8 4.8 1.8]\n",
      " [6.1 3.  4.9 1.8]\n",
      " [6.4 2.8 5.6 2.1]\n",
      " [7.2 3.  5.8 1.6]\n",
      " [7.4 2.8 6.1 1.9]\n",
      " [7.9 3.8 6.4 2. ]\n",
      " [6.4 2.8 5.6 2.2]\n",
      " [6.3 2.8 5.1 1.5]\n",
      " [6.1 2.6 5.6 1.4]\n",
      " [7.7 3.  6.1 2.3]\n",
      " [6.3 3.4 5.6 2.4]\n",
      " [6.4 3.1 5.5 1.8]\n",
      " [6.  3.  4.8 1.8]\n",
      " [6.9 3.1 5.4 2.1]\n",
      " [6.7 3.1 5.6 2.4]\n",
      " [6.9 3.1 5.1 2.3]\n",
      " [5.8 2.7 5.1 1.9]\n",
      " [6.8 3.2 5.9 2.3]\n",
      " [6.7 3.3 5.7 2.5]\n",
      " [6.7 3.  5.2 2.3]\n",
      " [6.3 2.5 5.  1.9]\n",
      " [6.5 3.  5.2 2. ]\n",
      " [6.2 3.4 5.4 2.3]\n",
      " [5.9 3.  5.1 1.8]]\n",
      "[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
      " 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
      " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2\n",
      " 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n",
      " 2 2]\n"
     ]
    }
   ],
   "source": [
    "print(x)\n",
    "print(y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "dfd0cf13-bc65-4d3c-88d5-6aa0c1b077c9",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-1 {color: black;background-color: white;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>KNeighborsClassifier()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">KNeighborsClassifier</label><div class=\"sk-toggleable__content\"><pre>KNeighborsClassifier()</pre></div></div></div></div></div>"
      ],
      "text/plain": [
       "KNeighborsClassifier()"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "knn_5 = KNeighborsClassifier(n_neighbors=5)\n",
    "knn_5.fit(x,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "167223c6-1e56-43da-919a-e6cc68cc94ea",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
      " 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1\n",
      " 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 2 2 2 2\n",
      " 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n",
      " 2 2]\n",
      "(150,)\n"
     ]
    }
   ],
   "source": [
    "y_pred = knn_5.predict(x)\n",
    "print(y_pred)\n",
    "print(y_pred.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "be120dd2-07ca-4a33-b456-d6febffde20d",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9666666666666667\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import accuracy_score\n",
    "print(accuracy_score(y,y_pred))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "29f0bf3c-5b1f-472e-93ba-152544413cd7",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.0\n"
     ]
    }
   ],
   "source": [
    "knn_1 = KNeighborsClassifier(n_neighbors=1)\n",
    "knn_1.fit(x,y)\n",
    "y_pred = knn_1.predict(x)\n",
    "print(accuracy_score(y,y_pred))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "48773f70-0ab4-41af-afdf-b3e5e9f772dd",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(150, 4)\n",
      "(150,)\n"
     ]
    }
   ],
   "source": [
    "print(x.shape)\n",
    "print(y.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "01ab4b64-42dc-4221-9776-417e46bae533",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "# 数据分离\n",
    "from sklearn.model_selection import train_test_split\n",
    "x_train, x_test, y_train, y_test = train_test_split(x,y,test_size=0.4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "b2363bf9-7411-45bf-ad00-5bf5e46557bf",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(90, 4) (60, 4) (90,) (60,)\n"
     ]
    }
   ],
   "source": [
    "# 分离后数据集的维度确认\n",
    "print(x_train.shape,x_test.shape,y_train.shape,y_test.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "591a87db-40af-4afd-825a-7878e697ff69",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "# 分离后数据集的训练与评估\n",
    "knn_5_s = KNeighborsClassifier(n_neighbors=5)\n",
    "knn_5_s.fit(x_train,y_train)\n",
    "y_train_pred = knn_5_s.predict(x_train)\n",
    "y_test_pred = knn_5_s.predict(x_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "1b57b6a1-42c2-4c4a-b2a4-c97a2e4c059e",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9444444444444444\n"
     ]
    }
   ],
   "source": [
    "# 分离后模型预测的准确率\n",
    "print(accuracy_score(y_train, y_train_pred))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "0820e738-ddda-4fb9-8a18-81a61359e056",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.0\n"
     ]
    }
   ],
   "source": [
    "print(accuracy_score(y_test,y_test_pred))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "dd891b69-1ed9-4041-9192-96fc27103b1a",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "# 分离后数据集的训练与评估\n",
    "knn_1_s = KNeighborsClassifier(n_neighbors=1)\n",
    "knn_1_s.fit(x_train,y_train)\n",
    "y_train_pred = knn_1_s.predict(x_train)\n",
    "y_test_pred = knn_1_s.predict(x_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "d74ae58a-965d-4abc-bf16-68d240fa7d3e",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.0\n"
     ]
    }
   ],
   "source": [
    "# 分离后模型预测的准确率\n",
    "print(accuracy_score(y_train, y_train_pred))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "405dcfcb-ef21-4892-9ecb-3d851b697157",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9666666666666667\n"
     ]
    }
   ],
   "source": [
    "print(accuracy_score(y_test,y_test_pred))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "5249aff0-fc68-48f7-b04c-2bcd62b1a04c",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "# K: 1-25\n",
    "# 遍历所有的可能的参数组合\n",
    "# 建立相应的model\n",
    "# model训练》预测\n",
    "# 给予测试数据的准确率计算\n",
    "# 查看最高的准确率对应的k值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "8134aa96-610e-4b96-819a-003f5761f965",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]\n"
     ]
    }
   ],
   "source": [
    "k_range = list(range(1,26))\n",
    "print(k_range)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "b09e5277-1847-431e-b5ae-87ded453dc50",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "score_train=[]\n",
    "score_test=[]\n",
    "for k in k_range:\n",
    "    knn = KNeighborsClassifier(n_neighbors=k)\n",
    "    knn.fit(x_train,y_train)\n",
    "    y_train_pred = knn.predict(x_train)\n",
    "    y_test_pred = knn.predict(x_test)\n",
    "    score_train.append(accuracy_score(y_train, y_train_pred))\n",
    "    score_test.append(accuracy_score(y_test, y_test_pred))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "2edac0f0-0120-476d-8aa8-258fe75d6e41",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1 0.9666666666666667\n",
      "2 0.9333333333333333\n",
      "3 0.9666666666666667\n",
      "4 0.9333333333333333\n",
      "5 1.0\n",
      "6 0.95\n",
      "7 0.9833333333333333\n",
      "8 0.95\n",
      "9 0.9666666666666667\n",
      "10 0.9333333333333333\n",
      "11 0.95\n",
      "12 0.95\n",
      "13 0.95\n",
      "14 0.9333333333333333\n",
      "15 0.9333333333333333\n",
      "16 0.9333333333333333\n",
      "17 0.95\n",
      "18 0.9333333333333333\n",
      "19 0.95\n",
      "20 0.95\n",
      "21 0.95\n",
      "22 0.95\n",
      "23 0.9666666666666667\n",
      "24 0.9333333333333333\n",
      "25 0.95\n"
     ]
    }
   ],
   "source": [
    "for k in k_range:\n",
    "    print(k,score_train[k-1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "34dcf434-5dbb-47d8-b159-1472ace1e853",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1 0.9666666666666667\n",
      "2 0.9333333333333333\n",
      "3 0.9666666666666667\n",
      "4 0.9333333333333333\n",
      "5 1.0\n",
      "6 0.95\n",
      "7 0.9833333333333333\n",
      "8 0.95\n",
      "9 0.9666666666666667\n",
      "10 0.9333333333333333\n",
      "11 0.95\n",
      "12 0.95\n",
      "13 0.95\n",
      "14 0.9333333333333333\n",
      "15 0.9333333333333333\n",
      "16 0.9333333333333333\n",
      "17 0.95\n",
      "18 0.9333333333333333\n",
      "19 0.95\n",
      "20 0.95\n",
      "21 0.95\n",
      "22 0.95\n",
      "23 0.9666666666666667\n",
      "24 0.9333333333333333\n",
      "25 0.95\n"
     ]
    }
   ],
   "source": [
    "for k in k_range:\n",
    "    print(k,score_test[k-1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "546e9b8b-963e-492f-b29d-1cfa45fb4c96",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Training Accuracy')"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 图形展示\n",
    "# 导入Matpotlib图库并使图像在notebook中展示\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "# 展示k值与训练数据集预测准确率之间的关系\n",
    "plt.plot(k_range,score_train)\n",
    "plt.xlabel('K(KNN model)')\n",
    "plt.ylabel('Training Accuracy')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "8d44895a-01a7-4b9d-923b-7fd5e1ca1b0d",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Testing Accuracy')"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(k_range,score_test)\n",
    "plt.xlabel('K(KNN model)')\n",
    "plt.ylabel('Testing Accuracy')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "056ee8ce-989e-4c75-9648-78510eba6449",
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}